package com.dd.cloud.user.service.agent;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.cloud.user.entity.agent.Agent;
import com.dd.cloud.user.req.agent.*;
import com.dd.cloud.user.res.agent.*;

/**
 * @author Lx
 * @version 1.0
 */
public interface IAgentService extends IService<Agent> {
    /**
     * 创建代理商
     *
     * @param req
     */
    void createAgent(AgentCreateReq req);

    /**
     * 创建代理商 h5适用
     *
     * @param req
     */
    void createAgentH5(AgentCreateH5Req req);

    /**
     * 修改代理商
     *
     * @param req
     */
    void updateAgent(AgentUpdateReq req);

    /**
     * 查询代理商列表
     *
     * @param req
     * @return
     */
    IPage<AgentPageRes> queryAgentPage(AgentPageReq req);

    /**
     * 查询代理商详情
     *
     * @param id
     * @return
     */
    AgentDetailRes queryAgentDetail(Integer id);

    /**
     * 查询代理商代理医生列表 分页
     *
     * @param req
     * @return
     */
    IPage<AgentDoctorPageRes> queryAgentDoctorPage(AgentDoctorPageReq req);

    /**
     * 查询代理商代理机构列表 分页
     *
     * @param req
     * @return
     */
    IPage<AgentMechanPageRes> queryAgentMechanPage(AgentMechanPageReq req);

    /**
     * 修改代理商状态
     *
     * @param id
     * @param status
     */
    void updateAgentStatus(Integer id, Integer status);

    /**
     * 统计首页邀请机构/医生数量图
     *
     * @param req
     * @return
     */
    AgentCountChartStatisticsRes queryAgentCountStatistics(AgentCountChartStatisticsReq req);

    /**
     * 初始化代理商邀请码
     */
    void initAgentInviteCode();
}
